'use strict'
// function fibo(n) {
//   if (n === 1 || n === 2) return 1
//   return fibo(n - 1) + fibo(n - 2)
// }
// let n = 12
// let nums = fibo(n)
// console.log(`f(${n})=`, nums)

// function finbonacci(n) {
//   let memo = [0, 1]
//   function fibo(n) {
//     if (typeof memo[n] !== 'number') {
//       memo[n] = fibo(n - 1) + fibo(n - 2)
//     }
//     return memo[n]
//   }
//   return fibo(n)
// }
// let n = 12
// let nums = finbonacci(n)
// console.log(`f(${n})=`, nums)

function finbonacci(n, sums = 0, last = 1) {
  if (n === 0) return sums
  return finbonacci(n - 1, last, sums + last)
}

finbonacci(5)
